The present invention relates in general to automated systems and in particular to independently controlled, networked computing systems.
Many workflows require a plurality of process steps to be executed by a plurality of performers (e.g., machines and/or people) in order to realize an objective. For example, printing workflows typically involve several process steps, often performed at disparate locations. For example, in a simple printing workflow, a publisher generates content for delivery to a printer, who in turn transforms the content in a series of pre-press operations, often performing such functions as color correction and imposition. Typically, the printer must also deliver the pre-press output back to the publisher for proofing. After several possible iterations of transformation and approval, printing plates are produced.
In the past, such process steps were performed manually with physical objects. For example, original artwork was used to produce four color films, which were exposed onto photosensitive materials to produce proofs for determining color correctness. If modifications were required, the process steps were repeated. When the proofs were finally approved, printing plates were produced. The logistics of even this simple workflow were time consuming and expensive.
In digital printing systems, the content is supplied as digital data and many of the process steps are performed by computers. However, the material is still commonly delivered by conventional means and each process step is typically initiated by a human operator. For example, a publisher creates digital files representing the content and stores them on a disk. The disk is then physically shipped to the printer, who downloads the files from the disk to a computer. Each file is verified and possibly proofed for correctness. Transformations are performed on the computer, one file at a time, with the aid of a human operator. Proofs are produced and sent back to the publisher for approval. After final approval, printing plates are produced from the digital files. This manual movement and operation is costly, time consuming, and difficult to track.
Considerable effort is expended in an attempt to control and streamline these workflows. Flow charting applications and other specialized workflow drawing programs have been used to record existing workflows, design new workflows, and specify new process steps. Although these tools facilitate the understanding of workflows, they do little in the way of reducing cost or automating otherwise manual operations.
Workgroup applications, such as Lotus Notes(copyright), have been used to manage the flow of information, but centralized, proprietary servers are often required to supervise the workflow. For this reason, these applications typically have only been useful to implement a workflow wholly contained within a single organization, or within a group of organizations, each of which is controlled by central servers (e.g., Lotus Notes(copyright)). Further, these centrally controlled workflows require the information processing to be accomplished in a manner compatible with the central server, thereby restricting the workflow devices that may be used. Still further, these workgroup applications are intended to simplify the flow of information from person to person, with automation being limited to messaging related to this flow. Consequently, human operators are still required to perform the necessary work, albeit often with the aid of a computer application.
The present invention implements a plurality of process steps by processing devices at potentially disparate locations. The process steps are executed independently and even complex workflows can be undertaken quickly and inexpensively.
In accordance with a first aspect of the invention, a device operable to execute a function included in a workflow to be implemented by a device network including the device is provided. The apparatus comprises means for accepting from the device network a workflow file that defines the workflow and identifies the function to be executed by the device. The apparatus also comprises means responsive to the accepting means and the workflow file for executing the function according to the workflow file and independently of the device network.
In the preferred embodiment, the workflow file may identify a parameter required to execute the function, and, the executing means may be responsive to the parameter. In such an instance, the function may comprise a first operation and a second operation. Further, the parameter may specify an authorization code for the first operation. Still further, the executing means may comprise means responsive to the authorization code for performing the first operation and means responsive to the performing means for electing whether to execute the second operation.
The transmitting means may include means for sending the second data to the second device with the modified process data. Further, the initiating means may be operable after the particular step is executed; and/or the apparatus may optionally be remote from the first and second devices. Further, the device may comprise memory wherein the accepting means comprises means stored in the memory for recognizing the workflow file.
Still further in accordance with the preferred embodiment, the device network may comprise an antecedent device and a communication link between the antecedent device and the device. In addition, the accepting means may comprise means for receiving the workflow file via the communication link from the antecedent device. In such an instance, the antecedent device may be remote from the device and the antecedent device may comprise an initiating device. Further, the device may comprise the initiating device. In addition, the workflow file may identify the antecedent device and a corresponding antecedent function to be executed by the antecedent device.
Still further in accordance with the preferred embodiment, the device network may comprise a subsequent device and a communication link between the device and the subsequent device. Further, the workflow file may identify the subsequent device. In such an instance, the device may further comprise means responsive to the workflow file for generating a modified workflow file in response to the executing means and, means responsive to the modifying means for sending the modified workflow file to the subsequent device via the communication link. In addition, the subsequent device may be remote from the device. Further, the device network may comprise a network selected from the group consisting of an intranet, a wide area network, a local area network, a telecommunications network, and an Internet. Still further, the device may comprise means for receiving process data, wherein the executing means may comprise means for modifying the process data to obtain modified process data. The device may further comprise, means for transmitting status information to an observing device identified in the workflow file. In such an instance, the device may be in combination with the observing device.
In accordance with another aspect of the present invention, an apparatus for implementing a particular process step after a prior step is executed by a first device and before a subsequent step is executed by a second device is provided. The apparatus comprises means for accepting a workflow file from the first device, the workflow file including a first indication identifying the particular process step and a second indication identifying the second device. The apparatus also includes means responsive to the first indication and operable substantially independent of the first and second devices for executing the particular step. In addition, the apparatus is provided with means responsive to the second indication and operable after the particular step is executed for sending the workflow file to the second device.
In accordance with yet another aspect of the present invention, a system for performing a sequence of first and second process steps is provided. The system comprises means for developing a workflow file representing the sequence of process steps. The system also includes first and second computing devices including first and second means for executing the first and second process steps, respectively, in a substantially autonomous manner. In addition, the system is provided with means for sending the workflow file from the first processing device to the second processing device after the first computing device has executed the first process step.
In accordance with still another aspect of the present invention, a distributed network is provided. The distributed network comprises a plurality of computing devices and means for linking the computing devices together. Each computing device includes means for accepting a workflow file, the workflow file including an indication of a function to be performed by the computing device and an indication of an ordered sequence of computing devices in the network, each computing device further including means operable substantially independent of other computing devices in the network for performing the function and means for sending the workflow file to a next computing device in the ordered sequence once the function has been performed.
In accordance with a further aspect of the present invention, a method of operating a particular computing device is provided. The method comprises programming the computing device to accept a workflow file, wherein the workflow file includes an indication of an ordered sequence of computing devices including the particular computing device and wherein the workflow file further includes an indication of a function to be performed by the particular computing device. The method also comprises causing the particular computing device to perform the function. Further, the method comprises operating the particular computing device to send the workflow file to another computing device in accordance with the ordered sequence.
In accordance with yet a further aspect of the present invention, an apparatus for implementing a particular process step after a prior step is executed by a first device and before a subsequent step is executed by a second device is provided. The apparatus comprises means for accepting first limited workflow data from the first device, the first limited workflow data including a first indication identifying the particular process step and a second indication identifying the second device. The apparatus also comprises means responsive to a first control signal and operable substantially independent of the first and second devices for executing the particular step. Additionally, the apparatus comprises means responsive to the second indication and operable after the particular step is executed for sending a second control signal to the second device.
Using the present invention, workflow details can be hidden from people who simply desire work products. No time is wasted contemplating and communicating details that are already known or not of interest. Each process step of a workflow is independent, and can therefore be mixed and matched to meet different requirements and individually refined for overall optimization. Execution and communication are automatic, decreasing costs and cycle times. Complex workflows remain consistent, increasing quality and facilitating continual improvement.